// Just write the required field and functions on the skill

var name = "Model"; // Skill name [required]
var description = "Model to be used as skill creation base."; // Skill description [required]
var elements = java.util.EnumSet.noneOf(Packages.base.Elements); // Skill elements [optional: default = none]
var status = java.util.EnumSet.noneOf(Packages.base.Status); // Skill status [optional: default = none]
var type = "aura"; // Skill types [required]
var target = false; //[required]
                    //true -> skill is cast on the cursor direction
                    //false -> skill is cast on the caster

// Action to execute when the skill is cast
function onCast(skill, character) {
    
}

// Action to execure when the skill hit a character
function onHitCharacter(skill, castChar, hitChar) {
    
}

// Action to execute when the skill hit the world
function onHitWorld(skill, character) {
    
}

// Skill physical damage [optional: default = 0]
function physicDamage(skill, character) {
    return 0;
}

// Skill ranged damage [optional: default = 0]
function rangeDamage(skill, character) {
    return 0;
}

// Skill magical damage [optional: default = 0]
function magicDamage(skill, character) {
    return 0;
}

// Change in characters VITALITY [optional: default = 0]
function vitality(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters SPIRIT [optional: default = 0]
function spirit(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters PHYSICAL ATTACK [optional: default = 0]
function physicAttack(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters PHYISICAL DEFENSE [optional: default = 0]
function physicDefense(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters RANGED ATTACK [optional: default = 0]
function rangeAttack(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters RANGED DEFENSE [optional: default = 0]
function rangeDefense(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters MAGICAL ATTACK [optional: default = 0]
function magicAttack(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters MAGICAL DEFENSE [optional: default = 0]
function magicDefense(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters PRECISION [optional: default = 0]
function precision(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters ATTACK SPEED [optional: default = 0]
function attackSpeed(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}

// Change in characters MOVEMENT SPEED [optional: default = 0]
function movementSpeed(skill, character) {
    var up = 0;
    var down = 0;
    
    return intParse(up - down);
}